﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Obj;
using BLL;
using DAL;

/// <summary>
/// Summary description for BLLPermissao
/// </summary>
public class BLLPermissao
{
	
    public int Save(objPermissao permissao, action acao)
    {
        int ret = 0;

        switch (acao)
        {
            case action.INSERT:
                ret = Insert(permissao);
                break;
            case action.UPDATE:
                ret = Update(permissao);
                break;
            case action.DELETE:
                ret = Delete(permissao);
                break;
            default:
                throw new Exception("Operação Inválida");
        }

        return ret;

    }

    private int Insert(objPermissao permissao)
    {
        int ret = 0;
        if (int.Parse(permissao.PermissaoID.ToString()) != 0)
            throw new Exception("Codigo da permissão Inválido");

        SQLPermissao sqlPermissao= new SQLPermissao();
        ret = sqlPermissao.Insert(permissao);
        return ret;

    }

    private int Update(objPermissao permissao)
    {
        if (int.Parse(permissao.PermissaoID.ToString()) <= 0)
            throw new Exception("Codigo da permissão Inválido");

        SQLPermissao sqlMarca = new SQLPermissao();
        if (sqlMarca.Update(permissao))
            return 1;
        else
            return 0;
    }

    private int Delete(objPermissao permissao)
    {
        if (int.Parse(permissao.PermissaoID.ToString()) <= 0)
            throw new Exception("Codigo do modelo Inválido");


        SQLPermissao sqlpermissao = new SQLPermissao();


        if (sqlpermissao.Delete(permissao.PermissaoID))
            return 1;
        else
            return 0;                  
    }

    public objPermissao permissao(objPermissao permissao)
    {
        SQLPermissao sqlPermissao = new SQLPermissao();
        return sqlPermissao.SelectByID(permissao.PermissaoID);
    }
	
	public List<objPermissao> lstPermissao()
    {
        SQLPermissao SQLPermissao = new SQLPermissao();
        return SQLPermissao.SelectAll();
    }
    
    public List<objPermissao> lstPermissao(objPermissao permissao)
    {
        SQLPermissao SQLPermissao = new SQLPermissao();
        return SQLPermissao.SelectAll(permissao);
    }
}